From 0fd36627da3791cac17b09256aef0bf0a0ee7430 Mon Sep 17 00:00:00 2001 From: "emellor@ewan" Date: Sat, 17 Sep 2005 17:34:58 +0100 Subject: [PATCH] Added getVCpuCount to XendDomainInfo and use that and getName, getDomain, getTargetMemory inside image.py to decouple the latter from the internals of the former. Move the definition of xc inside image.py to please pylint. Signed-off-by: Ewan Mellor --- tools/python/xen/xend/XendDomainInfo.py | 3 ++ tools/python/xen/xend/image.py | 38 ++++++++++++++----------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 36e93472df..564d654001 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -334,6 +334,9 @@ class XendDomainInfo: def getName(self): return self.name + def getVCpuCount(self): + return self.vcpus + def getSsidref(self): return self.ssidref diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index cb37263423..b4b9dc4810 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -18,7 +18,7 @@ import os, string import re -import xen.lowlevel.xc; xc = xen.lowlevel.xc.new() +import xen.lowlevel.xc from xen.xend import sxp from xen.xend.XendError import VmError from xen.xend.XendLogging import log @@ -27,6 +27,10 @@ from xen.xend.xenstore.xstransact import xstransact from xen.xend.server import channel + +xc = xen.lowlevel.xc.new() + + MAX_GUEST_CMDLINE = 1024 class ImageHandler: @@ -155,7 +159,8 @@ class ImageHandler: self.unlink(self.kernel) self.unlink(self.ramdisk) if dom <= 0: - raise VmError('Creating domain failed: name=%s' % self.vm.name) + raise VmError('Creating domain failed: name=%s' % + self.vm.getName()) log.debug("initDomain: cpu=%d mem_kb=%d ssidref=%d dom=%d", cpu, mem_kb, ssidref, dom) xc.domain_setcpuweight(dom, cpu_weight) xc.domain_setmaxmem(dom, mem_kb) @@ -190,14 +195,15 @@ class ImageHandler: if self.ramdisk and not os.path.isfile(self.ramdisk): raise VmError('Kernel ramdisk does not exist: %s' % self.ramdisk) if len(self.cmdline) >= MAX_GUEST_CMDLINE: - log.warning('kernel cmdline too long, domain %d', self.vm.domid) + log.warning('kernel cmdline too long, domain %d', + self.vm.getDomain()) log.info("buildDomain os=%s dom=%d vcpus=%d", self.ostype, - self.vm.domid, self.vm.vcpus) + self.vm.getDomain(), self.vm.getVCpuCount()) err = self.buildDomain() if err != 0: raise VmError('Building domain failed: ostype=%s dom=%d err=%d' - % (self.ostype, self.vm.domid, err)) + % (self.ostype, self.vm.getDomain(), err)) def getDomainMemory(self, mem_mb): """Memory (in KB) the domain will need for mem_mb (in MB).""" @@ -237,23 +243,23 @@ class LinuxImageHandler(ImageHandler): else: console_evtchn = 0 - log.debug("dom = %d", self.vm.domid) + log.debug("dom = %d", self.vm.getDomain()) log.debug("image = %s", self.kernel) log.debug("store_evtchn = %d", store_evtchn) log.debug("console_evtchn = %d", console_evtchn) log.debug("cmdline = %s", self.cmdline) log.debug("ramdisk = %s", self.ramdisk) log.debug("flags = %d", self.flags) - log.debug("vcpus = %d", self.vm.vcpus) + log.debug("vcpus = %d", self.vm.getVCpuCount()) - ret = xc.linux_build(dom = self.vm.domid, + ret = xc.linux_build(dom = self.vm.getDomain(), image = self.kernel, store_evtchn = store_evtchn, console_evtchn = console_evtchn, cmdline = self.cmdline, ramdisk = self.ramdisk, flags = self.flags, - vcpus = self.vm.vcpus) + vcpus = self.vm.getVCpuCount()) if isinstance(ret, dict): self.set_vminfo(ret) return 0 @@ -297,22 +303,22 @@ class VmxImageHandler(ImageHandler): def buildDomain(self): # Create an event channel - self.device_channel = channel.eventChannel(0, self.vm.domid) + self.device_channel = channel.eventChannel(0, self.vm.getDomain()) log.info("VMX device model port: %d", self.device_channel.port2) if self.vm.store_channel: store_evtchn = self.vm.store_channel.port2 else: store_evtchn = 0 - ret = xc.vmx_build(dom = self.vm.domid, + ret = xc.vmx_build(dom = self.vm.getDomain(), image = self.kernel, control_evtchn = self.device_channel.port2, store_evtchn = store_evtchn, - memsize = self.vm.memory, + memsize = self.vm.getTargetMemory(), memmap = self.memmap_value, cmdline = self.cmdline, ramdisk = self.ramdisk, flags = self.flags, - vcpus = self.vm.vcpus) + vcpus = self.vm.getVCpuCount()) if isinstance(ret, dict): self.set_vminfo(ret) return 0 @@ -391,7 +397,7 @@ class VmxImageHandler(ImageHandler): elif vnc: ret = ret + ['-vnc', '-k', 'en-us'] if vnc: - vncport = int(self.vm.domid) + 5900 + vncport = int(self.vm.getDomain()) + 5900 ret = ret + ['-vncport', '%d' % vncport] return ret @@ -405,9 +411,9 @@ class VmxImageHandler(ImageHandler): vnc = self.vncParams() if len(vnc): args = args + vnc - args = args + ([ "-d", "%d" % self.vm.domid, + args = args + ([ "-d", "%d" % self.vm.getDomain(), "-p", "%d" % self.device_channel.port1, - "-m", "%s" % self.vm.memory ]) + "-m", "%s" % self.vm.getTargetMemory() ]) args = args + self.dmargs env = dict(os.environ) env['DISPLAY'] = self.display -- 2.30.2